// 配置axios基地址
axios.defaults.baseURL = 'https://hmajax.itheima.net'
// 公共的提示框函数
const showToast = (msg) => {
  // 这个是bootstrap中的一个方法,具体的用法可以去查询
  const myToast = document.querySelector('.my-toast')
  const toastObj = new bootstrap.Toast(myToast)
  toastObj.show()
  $('.toast-body').html(msg)
}
// 公共的token
const checkToken = () => {
  const { token } = JSON.parse(localStorage.getItem('users'))
  if (!token) {
    showToast('请先登录')
    setInterval(() => {
      location.href = './login.html'
    }, 1500)
  }
}
// 回显用户名
const renderUname = () => {
  const { username } = JSON.parse(localStorage.getItem('users'))
  if (username) $('.username').html(username)
}

// 退出登录
const logOut = () => {
  $('#logout').click(() => {
    console.log(1)
    localStorage.removeItem('users')
    showToast('退出成功')
    setInterval(() => {
      location.href = './login.html'
    }, 1500)
  })
}

// 添加请求拦截器
axios.interceptors.request.use(
  (config) => {
    // 在发送请求之前做些什么
    // 配置了token这样在写的时候就方便了
    const { token } = localStorage.getItem('users') ? JSON.parse(localStorage.getItem('users')) : {}
    if (token) {
      config.headers['Authorization'] = token
    }
    return config
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)
// 添加响应拦截器
axios.interceptors.response.use(
  function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么

    // 做数据剥离
    return response.data
  },
  function (error) {
    if (error.response.status === 401) {
      showToast('你的登录信息已过期,请重新登录')
      localStorage.removeItem('users')
      setInterval(() => {
        location.href = './login.html'
      }, 1500)
    }
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error)
  }
)
